AcroPDFLib; // Adobe Acrobat Browser Control Type Library 1.0

Dispatch _IAcroPDFEvents;
GUID={CBDF3004-9EC6-45E2-A78D-C756166C4710};

Dispatch _IAcroAXDocShimEvents; // _IAcroAXDocShimEvents Interface
GUID={E790E1D1-9DE8-4853-8AC6-933D4FD9C927};
  function OnError;
  function OnMessage;

Class AcroPDF;
GUID={CA8A9780-280D-11CF-A24D-444553540000};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  property-get src: BSTR;
  property-put src(BSTR);
  function LoadFile(fileName:BSTR): bool;
  function setShowToolbar(On:bool);
  function gotoFirstPage;
  function gotoLastPage;
  function gotoNextPage;
  function gotoPreviousPage;
  function setCurrentPage(n:I4);
  function goForwardStack;
  function goBackwardStack;
  function setPageMode(pageMode:BSTR);
  function setLayoutMode(layoutMode:BSTR);
  function setNamedDest(namedDest:BSTR);
  function Print;
  function printWithDialog;
  function setZoom(percent:R4);
  function setZoomScroll(percent:R4; left:R4; top:R4);
  function setView(viewMode:BSTR);
  function setViewScroll(viewMode:BSTR; offset:R4);
  function setViewRect(left:R4; top:R4; width:R4; height:R4);
  function printPages(from:I4; to:I4);
  function printPagesFit(from:I4; to:I4; shrinkToFit:bool);
  function printAll;
  function printAllFit(shrinkToFit:bool);
  function setShowScrollbars(On:bool);
  function GetVersions: variant;
  function setCurrentHightlight(a:I4; b:I4; c:I4; d:I4);
  function setCurrentHighlight(a:I4; b:I4; c:I4; d:I4);
  function postMessage(strArray:variant);
  property-get messageHandler: variant;
  property-put messageHandler(variant);
  function execCommand(strArray:variant);
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  function ViewDocument(bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function ViewDocument2(pDisp:IDispatch; bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function ViewDocument3(pDisp:IDispatch; bstrDocumentLocation:BSTR; OpenType:INT; [varProgID:variant]): bool;
  function CheckinDocument(bstrDocumentLocation:BSTR; CheckinType:INT; CheckinComment:BSTR; bKeepCheckout:bool): bool;
  function CheckoutDocumentPrompt(bstrDocumentLocationRaw:BSTR; fEditAfterCheckout:bool; [varProgID:variant]): bool;
  function CreateNewDocument(bstrTemplateLocation:BSTR; bstrDefaultSaveLocation:BSTR): bool;
  function CreateNewDocument2(pDisp:IDispatch; bstrTemplateLocation:BSTR; bstrDefaultSaveLocation:BSTR): bool;
  function DiscardLocalCheckout(bstrDocumentLocationRaw:BSTR): bool;
  function EditDocument(bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function EditDocument2(pDisp:IDispatch; bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function EditDocument3(pDisp:IDispatch; bstrDocumentLocation:BSTR; fUseLocalCopy:bool; [varProgID:variant]): bool;
  function NewBlogPost(bstrProviderId:BSTR; bstrBlogUrl:BSTR; bstrBlogName:BSTR);
  function PromptedOnLastOpen: bool;
  function ViewInExcel(SiteUrl:BSTR; fileName:BSTR; SessionId:BSTR; Cmd:BSTR; Sheet:BSTR; Row:INT; Column:INT; [varProgID:variant]);
  function OnError;
  function OnMessage;

Dispatch IAcroPDF;
GUID={C0A4BB8B-311B-4379-8062-A1EE01F21D8F};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);

Dispatch IAcroAXDocShim; // IAcroAXDocShim Interface
GUID={3B813CE7-7C10-4F84-AD06-9DF76D97A9AA};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  property-get src: BSTR;
  property-put src(BSTR);
  function LoadFile(fileName:BSTR): bool;
  function setShowToolbar(On:bool);
  function gotoFirstPage;
  function gotoLastPage;
  function gotoNextPage;
  function gotoPreviousPage;
  function setCurrentPage(n:I4);
  function goForwardStack;
  function goBackwardStack;
  function setPageMode(pageMode:BSTR);
  function setLayoutMode(layoutMode:BSTR);
  function setNamedDest(namedDest:BSTR);
  function Print;
  function printWithDialog;
  function setZoom(percent:R4);
  function setZoomScroll(percent:R4; left:R4; top:R4);
  function setView(viewMode:BSTR);
  function setViewScroll(viewMode:BSTR; offset:R4);
  function setViewRect(left:R4; top:R4; width:R4; height:R4);
  function printPages(from:I4; to:I4);
  function printPagesFit(from:I4; to:I4; shrinkToFit:bool);
  function printAll;
  function printAllFit(shrinkToFit:bool);
  function setShowScrollbars(On:bool);
  function GetVersions: variant;
  function setCurrentHightlight(a:I4; b:I4; c:I4; d:I4);
  function setCurrentHighlight(a:I4; b:I4; c:I4; d:I4);
  function postMessage(strArray:variant);
  property-get messageHandler: variant;
  property-put messageHandler(variant);
  function execCommand(strArray:variant);

Dispatch ISPOpenDocuments; // ISPOpenDocuments Interface
GUID={7EA23D88-569E-4EFD-9851-A1528A7745F9};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  function ViewDocument(bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function ViewDocument2(pDisp:IDispatch; bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function ViewDocument3(pDisp:IDispatch; bstrDocumentLocation:BSTR; OpenType:INT; [varProgID:variant]): bool;
  function CheckinDocument(bstrDocumentLocation:BSTR; CheckinType:INT; CheckinComment:BSTR; bKeepCheckout:bool): bool;
  function CheckoutDocumentPrompt(bstrDocumentLocationRaw:BSTR; fEditAfterCheckout:bool; [varProgID:variant]): bool;
  function CreateNewDocument(bstrTemplateLocation:BSTR; bstrDefaultSaveLocation:BSTR): bool;
  function CreateNewDocument2(pDisp:IDispatch; bstrTemplateLocation:BSTR; bstrDefaultSaveLocation:BSTR): bool;
  function DiscardLocalCheckout(bstrDocumentLocationRaw:BSTR): bool;
  function EditDocument(bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function EditDocument2(pDisp:IDispatch; bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function EditDocument3(pDisp:IDispatch; bstrDocumentLocation:BSTR; fUseLocalCopy:bool; [varProgID:variant]): bool;
  function NewBlogPost(bstrProviderId:BSTR; bstrBlogUrl:BSTR; bstrBlogName:BSTR);
  function PromptedOnLastOpen: bool;
  function ViewInExcel(SiteUrl:BSTR; fileName:BSTR; SessionId:BSTR; Cmd:BSTR; Sheet:BSTR; Row:INT; Column:INT; [varProgID:variant]);

Class AdobeSPOpenDocumentsShim;
GUID={24DA047B-40C0-4018-841B-6B7409F730FC};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  function ViewDocument(bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function ViewDocument2(pDisp:IDispatch; bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function ViewDocument3(pDisp:IDispatch; bstrDocumentLocation:BSTR; OpenType:INT; [varProgID:variant]): bool;
  function CheckinDocument(bstrDocumentLocation:BSTR; CheckinType:INT; CheckinComment:BSTR; bKeepCheckout:bool): bool;
  function CheckoutDocumentPrompt(bstrDocumentLocationRaw:BSTR; fEditAfterCheckout:bool; [varProgID:variant]): bool;
  function CreateNewDocument(bstrTemplateLocation:BSTR; bstrDefaultSaveLocation:BSTR): bool;
  function CreateNewDocument2(pDisp:IDispatch; bstrTemplateLocation:BSTR; bstrDefaultSaveLocation:BSTR): bool;
  function DiscardLocalCheckout(bstrDocumentLocationRaw:BSTR): bool;
  function EditDocument(bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function EditDocument2(pDisp:IDispatch; bstrDocumentLocation:BSTR; [varProgID:variant]): bool;
  function EditDocument3(pDisp:IDispatch; bstrDocumentLocation:BSTR; fUseLocalCopy:bool; [varProgID:variant]): bool;
  function NewBlogPost(bstrProviderId:BSTR; bstrBlogUrl:BSTR; bstrBlogName:BSTR);
  function PromptedOnLastOpen: bool;
  function ViewInExcel(SiteUrl:BSTR; fileName:BSTR; SessionId:BSTR; Cmd:BSTR; Sheet:BSTR; Row:INT; Column:INT; [varProgID:variant]);

Dispatch ISPOpenDocumentsShim;
GUID={EE6717DB-F374-4CF9-8D18-6ECF56EF8BC3};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
